home *** CD-ROM | disk | FTP | other *** search
/ Suzy B Software 2 / Suzy B Software CD-ROM 2 (1994).iso / extras / programm / gemfsc20 / gemfsc20.lzh / GEMFBIND / VQTWIDTH.S < prev    next >
Text File  |  1993-03-26  |  1KB  |  51 lines

  1. ;*========================================================================
  2. ;* VDIFAST Public Domain VDI bindings.
  3. ;*========================================================================
  4.  
  5.  
  6. ;*------------------------------------------------------------------------
  7. ;* Inquire character cell width.
  8. ;*------------------------------------------------------------------------
  9.  
  10.           globl     _vqt_width
  11. _vqt_width:
  12. ;    .cargs    #8,handle.w,character.w,cellw.l,left.l,right.l
  13.  
  14. handle      =         8
  15. character =         10
  16. cellw      =         12
  17. left      =         16
  18. right      =         20
  19.  
  20.           link        a6,#-14             ;* Allocate intout[1], ptsout[6].
  21.  
  22. ;          VContrl    #117,,,#1
  23.           move.w    handle(a6),-(sp)    ; contrl[6]
  24.           clr.l     -(sp)                ; contrl[5,4]
  25.           move.w    #1,-(sp)            ; contrl[3]
  26.           subq.l    #2,sp                ; contrl[2]
  27.           clr.w     -(sp)                ; contrl[1]
  28.           move.w    #117,-(sp)            ; contrl[0]
  29.  
  30.           pea        -12(a6)             ;* -> ptsout
  31.           pea        -14(a6)             ;* -> intout
  32.           subq.l    #4,sp                ;* -> ptsin
  33.           pea        character(a6)        ;* -> intin
  34.           pea        16(sp)                ;* -> contrl
  35.  
  36.           move.l    sp,d1
  37.           jsr        vditrap
  38.  
  39.           move.l    cellw(a6),a0        ;* Return cell width
  40.           move.w    -12(a6),(a0)        ;* from ptsout[0].
  41.           move.l    right(a6),a0        ;* Return cell right delta
  42.           move.w    -8(a6),(a0)         ;* from ptsout[2].
  43.           move.l    left(a6),a0         ;* Return cell left delta
  44.           move.w    -4(a6),(a0)         ;* from ptsout[4].
  45.           move.w    -14(a6),d0            ;* Return status from intout[0].
  46.  
  47.           unlk        a6
  48.           rts
  49.  
  50.           end
  51.